package ar.edu.utn.frgp.TPFinalBanco.model.pk;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

import ar.edu.utn.frgp.TPFinalBanco.model.Cuenta;

@Embeddable()
public class MovimientoPk implements Serializable {
	 
		private static final long serialVersionUID = 1L;
		

		@GeneratedValue(strategy=GenerationType.IDENTITY)
		@Column(name="idMov")
		private Integer idMov;
		
		@ManyToOne()
		@JoinColumn(name = "nroCuenta")
		private Cuenta cuenta;
		

	    public MovimientoPk() {}

	    public MovimientoPk(Integer idMov, Cuenta cuenta) {
	        this.idMov = idMov;
	        this.cuenta = cuenta;
	    }

		public Integer getIdMov() {
			return idMov;
		}

		public void setIdMov(Integer idMov) {
			this.idMov = idMov;
		}

		public Cuenta getCuenta() {
			return cuenta;
		}

		public void setCuenta(Cuenta cuenta) {
			this.cuenta = cuenta;
		}

		@Override
		public int hashCode() {
			final int prime = 31;
			int result = 1;
			result = prime * result + ((idMov == null) ? 0 : idMov.hashCode());
			return result;
		}

		@Override
		public boolean equals(Object obj) {
			if (this == obj)
				return true;
			if (obj == null)
				return false;
			if (getClass() != obj.getClass())
				return false;
			MovimientoPk other = (MovimientoPk) obj;
			if (idMov == null) {
				if (other.idMov != null)
					return false;
			} else if (!idMov.equals(other.idMov))
				return false;
			if (cuenta == null) {
				if (other.cuenta != null)
					return false;
			} else if (!cuenta.equals(other.cuenta))
				return false;
			return true;
		}
	    
	
}
